//包函数
module.exports = function(grunt) {
  //初始化一个grunt配置
  grunt.initConfig({
    //读取package.json文件
    pkg: grunt.file.readJSON('package.json'),
  // 定义一个动作 concat 连接
    concat:{
    //连接中的选项
      options:{
        //产生分割线
          separator:'\r\n/*--------------------------------------*/\r\n',
        //产生连接日期
          banner:'/*<%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
      },
      dist:{
        //引入要进行操作的js文件 有顺序之分
          src:['src/Control.js','src/dot.js','src/second.js','src/minute.js','src/hour.js','src/diamond.js','src/Clock.js'],
        //最终生成的js文件
          dest:'myClock.js'
      }
    },
    //压缩配置（生成压缩文件）
    uglify: {
      options: {
        //此处定义的banner注释将插入到输出文件的顶部
        banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
      },
      build: {
        //上面的dest连接生成的文件
        src: 'myClock.js',
        //压缩后的文件名
        dest: 'myClock.min.js'
      }
    },
    //监视文件是否发生变化
    watch:{
      //clock自定义的名称
      clock:{
        //要监视的文件 *为全部js文件
        files:['src/*.js'],
        //监视到文件发生变化之后执行的任务
          tasks:['concat','uglify']
        }
    }
  });
  // 加载包含"concat" "uglify" "watch"任务的插件。
  //在命令行上输入"grunt test"，test task就会被执行。
  grunt.loadNpmTasks('grunt-contrib-concat'); //连接
  grunt.loadNpmTasks('grunt-contrib-uglify'); //压缩
  grunt.loadNpmTasks('grunt-contrib-watch'); //监听
  // 默认被执行的任务列表。
  // 只需在命令行上输入"grunt"，就会执行default task
  grunt.registerTask('builder', ['concat','uglify']); //连接压缩
  grunt.registerTask('default',['builder','watch']); //监听改变
};